import express from 'express';
import dotenv from 'dotenv';
import cors from 'cors';
import helmet from 'helmet';
import userRoutes from './routes/userRoutes.js';
import permissionRoutes from './routes/permissionRoutes.js';
import studentRoutes from './routes/studentRoutes.js';
import newStudentClassRoutes from './routes/newStudentClassRoutes.js';
import clubRoutes from './routes/clubRoutes.js';
import clubRegistrationRoutes from './routes/clubRegistrationRoutes.js';
import logger from './config/logger.js';
import './config/db.js'; // 导入数据库连接

// 加载环境变量
 dotenv.config();

// 创建Express应用
const app = express();

// 中间件
// 全局中间件
app.use(helmet()); // 安全头设置
app.use(cors()); // 跨域支持
app.use(express.json()); // JSON解析
app.use(express.urlencoded({ extended: true })); // 表单数据解析

// 路由
app.use('/api/users', userRoutes);
app.use('/api/permissions', permissionRoutes);
app.use('/api/students', studentRoutes);
app.use('/api/new_student_classes', newStudentClassRoutes);
app.use('/api/clubs', clubRoutes);
app.use('/api/club_registrations', clubRegistrationRoutes);

// 根路由
app.get('/', (req, res) => {
  res.json({
    message: '欢迎使用用户管理系统API',
    version: '1.0.0'
  });
});

// 错误处理中间件
app.use((err, req, res, next) => {
  logger.error('未处理的错误:', err);

  res.status(500).json({
    message: '发生错误!',
    error: process.env.NODE_ENV === 'production' ? {} : err.message
  });
});

export default app;